package com.spic.business.hidden.screenprogram.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.spic.business.hidden.screenprogram.domain.HiddenScreenProgram;
import com.spic.business.hidden.screenprogram.domain.HiddenScreenProgramSubtable;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 隐患排查计划Mapper接口
 *
 * @author yangjie
 * @date 2021-10-14
 */
@Mapper
public interface HiddenScreenProgramMapper extends BaseMapper<HiddenScreenProgram>
{
    /**
     * 查询隐患排查计划
     *
     * @param id 隐患排查计划主键
     * @return 隐患排查计划
     */
    public HiddenScreenProgram selectHiddenScreenProgramById(Long id);

    /**
     * 查询隐患排查计划列表
     *
     * @param hiddenScreenProgram 隐患排查计划
     * @return 隐患排查计划集合
     */
    public List<HiddenScreenProgram> selectHiddenScreenProgramList(HiddenScreenProgram hiddenScreenProgram);

    /**
     * 新增隐患排查计划
     *
     * @param hiddenScreenProgram 隐患排查计划
     * @return 结果
     */
    public int insertHiddenScreenProgram(HiddenScreenProgram hiddenScreenProgram);

    /**
     * 修改隐患排查计划
     *
     * @param hiddenScreenProgram 隐患排查计划
     * @return 结果
     */
    public int updateHiddenScreenProgram(HiddenScreenProgram hiddenScreenProgram);

    /**
     * 删除隐患排查计划
     *
     * @param id 隐患排查计划主键
     * @return 结果
     */
    public int deleteHiddenScreenProgramById(Long id);

    /**
     * 批量删除隐患排查计划
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHiddenScreenProgramByIds(Long[] ids);

    /**
     * 批量删除排查清单库管理
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteHiddenLibraryManagementByParentIds(@Param("parentIds")Long[] ids);

    /**
     * 批量新增排查清单库管理
     *
     * @param hiddenLibraryManagementList 排查清单库管理列表
     * @return 结果
     */
    public int batchHiddenLibraryManagement(List<HiddenScreenProgramSubtable> hiddenLibraryManagementList);


    /**
     * 通过隐患排查计划主键删除排查清单库管理信息
     *
     * @param id 隐患排查计划ID
     * @return 结果
     */
    public int deleteHiddenLibraryManagementByParentId(Long id);

    List<Map<String, Object>> getLatest();
}
